In [1]:
import numpy as np
import cv2
import sys
import glob
from matplotlib import pyplot as plt
In [2]:
# training data
dataset_path = "dataset/image/design1/*.jpg"
files = glob.glob(dataset_path) 
In [3]:
# test data
test_path = "dataset/image/real/*.png"
# test_path = "dataset/image/design1/*.jpg"
test_files = glob.glob(test_path) 
In [4]:
ksize = 7
In [5]:
# noise removal
def remove_noise(image, k):
    return cv2.GaussianBlur(image,(k,k),0)
    # return cv2.medianBlur(image,k)


#thresholding_otsu
def thresholding_otsu(image):
    return cv2.threshold(image, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]

#thresholding
def thresholding(image):
    # return cv2.threshold(image,0, 100, cv2.THRESH_BINARY)[1]
    return cv2.adaptiveThreshold(image,                        # 8-bit 1-channel
                                255,                        # max value
                                cv2.ADAPTIVE_THRESH_GAUSSIAN_C, 
                                cv2.THRESH_BINARY,
                                ksize,                      # kernel size
                                2 )                         # C constant

#dilation
def dilate(image, cnt_dilate):
    kernel = np.ones((5,5),np.uint8)
    return cv2.dilate(image, kernel, iterations = cnt_dilate)
    
#erosion
def erode(image, cnt_erode):
    kernel = np.ones((5,5),np.uint8)
    return cv2.erode(image, kernel, iterations = cnt_erode)

#closing
def closing(image):
    kernel = np.ones((5,5),np.uint8)
    return cv2.morphologyEx(image, cv2.MORPH_CLOSE, kernel)

#opening
def opening(image):
    kernel = np.ones((5,5),np.uint8)
    return cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel)

#canny edge detection
def canny(image):
    return cv2.Canny(image, 100, 255)

#skew correction
def deskew(image):
    coords = np.column_stack(np.where(image > 0))
    angle = cv2.minAreaRect(coords)[-1]
    if angle < -45:
        angle = -(90 + angle)
    else:
        angle = -angle
    (h, w) = image.shape[:2]
    center = (w // 2, h // 2)
    M = cv2.getRotationMatrix2D(center, angle, 1.0)
    rotated = cv2.warpAffine(image, M, (w, h), flags=cv2.INTER_CUBIC, borderMode=cv2.BORDER_REPLICATE)
    return rotated

#template matching
def match_template(image, template):
    return cv2.matchTemplate(image, template, cv2.TM_CCOEFF_NORMED)
In [6]:
def get_mark(dir):
    img = cv2.imread(dir)
    print( 'img',img.shape )
    # resize
    h, w, _= img.shape
    if h > w:
        img = cv2.resize(img,(150, round(150 * h / w) ))        
    else:
        img = cv2.resize(img,(round(150 * w / h),150))
    print( 'img-resize',img.shape )
    # rgb for present
    img_org = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
    # gray
    img_gray = cv2.cvtColor(img.copy(),cv2.COLOR_BGR2GRAY)
    img_gray = remove_noise(img_gray, 3)
    
    img_candy = canny(img_gray)

    # Find all contours
    contours, hierarchy = cv2.findContours(img_candy,
                                          cv2.RETR_LIST,
                                          cv2.CHAIN_APPROX_NONE)

    contours_mark = []
    max_area = 0
    max_length = 0
    img_box = img.copy()
    for c in contours:
        if cv2.contourArea(c) > max_area:
            max_area = cv2.contourArea(c)
        if cv2.arcLength(c,False) > max_length:
            max_length = cv2.arcLength(c,False)
        if (cv2.contourArea(c) > 900 ) or (cv2.arcLength(c,False) > 500 ):
            contours_mark.append(c)
            x,y,w,h = cv2.boundingRect(c)
            print('w,h',w,h, w/h)
            is_square = False
            
            if w/h > 0.8 and w/h < 1.2:
                is_square = True
            if is_square:
                cv2.rectangle(img_box,(x,y),(x+w,y+h),(0,255,0),2)
        # print(cv2.contourArea(c),cv2.arcLength(c,False))
    print('max', max_area, max_length)

    mark_object = cv2.drawContours( img_org.copy(),contours_mark,-1, 
                  (0,255,0), 
                  thickness=2)
                  
    # img_object = mark_object
    # title
    titles = [ 'img_org',  'img_gray','img_candy','mark_object','img_box']
    images = [ img_org,  img_gray ,img_candy,mark_object,img_box]

    # Show all resultant images using pyplot
    fig = plt.figure(figsize=(15,8))
    fig.canvas.set_window_title('OpenCV')
    for i in range(len(titles)):
        plt.subplot(2,3,i+1),plt.imshow(images[i],'gray')
        plt.title(titles[i])
        plt.xticks([]),plt.yticks([])
In [7]:
for item in test_files:
    try:
        get_mark(item)
    except:
        print(item)
img (167, 117, 3)
img-resize (214, 150, 3)
w,h 41 65 0.6307692307692307
w,h 41 65 0.6307692307692307
w,h 102 98 1.0408163265306123
max 1117.0 556.9453008174896
img (532, 186, 3)
img-resize (429, 150, 3)
w,h 60 24 2.5
w,h 61 24 2.5416666666666665
w,h 55 48 1.1458333333333333
w,h 150 206 0.7281553398058253
w,h 98 117 0.8376068376068376
w,h 98 117 0.8376068376068376
max 5764.0 2132.545367836952
img (685, 257, 3)
img-resize (400, 150, 3)
w,h 34 263 0.12927756653992395
w,h 113 108 1.0462962962962963
w,h 113 108 1.0462962962962963
w,h 56 136 0.4117647058823529
max 9946.0 641.6101716756821
img (258, 132, 3)
img-resize (293, 150, 3)
w,h 34 158 0.21518987341772153
w,h 51 60 0.85
w,h 51 60 0.85
w,h 123 119 1.0336134453781514
w,h 128 119 1.0756302521008403
w,h 2 282 0.0070921985815602835
max 7525.0 564.3137083053589
img (310, 102, 3)
img-resize (456, 150, 3)
w,h 31 84 0.36904761904761907
w,h 48 128 0.375
max 332.0 550.9898953437805
img (226, 101, 3)
img-resize (336, 150, 3)
max 84.5 352.32590091228485
/var/folders/81/801rlldj66b9mqn09r7s37jr0000gn/T/ipykernel_15373/4254636046.py:57: MatplotlibDeprecationWarning: 
The set_window_title function was deprecated in Matplotlib 3.4 and will be removed two minor releases later. Use manager.set_window_title or GUI-specific methods instead.
  fig.canvas.set_window_title('OpenCV')
img (86, 99, 3)
img-resize (150, 173, 3)
w,h 91 92 0.9891304347826086
max 489.5 559.192993760109
img (125, 127, 3)
img-resize (150, 152, 3)
w,h 30 43 0.6976744186046512
w,h 117 114 1.0263157894736843
w,h 117 114 1.0263157894736843
w,h 128 123 1.0406504065040652
w,h 128 123 1.0406504065040652
max 12779.5 416.74725472927094
img (333, 127, 3)
img-resize (393, 150, 3)
w,h 78 191 0.4083769633507853
w,h 77 66 1.1666666666666667
w,h 77 66 1.1666666666666667
w,h 81 79 1.0253164556962024
w,h 33 44 0.75
w,h 115 112 1.0267857142857142
w,h 115 112 1.0267857142857142
w,h 126 120 1.05
w,h 126 120 1.05
max 12364.0 636.6883796453476
img (182, 624, 3)
img-resize (150, 514, 3)
w,h 405 39 10.384615384615385
w,h 76 41 1.853658536585366
w,h 71 67 1.0597014925373134
w,h 45 60 0.75
w,h 36 76 0.47368421052631576
w,h 71 57 1.2456140350877194
w,h 280 107 2.616822429906542
max 2292.0 4868.559983491898
dataset/image/real/curve_right_1.png
img (166, 125, 3)
img-resize (199, 150, 3)
w,h 41 80 0.5125
w,h 48 71 0.676056338028169
w,h 62 61 1.0163934426229508
w,h 57 69 0.8260869565217391
max 420.5 551.7005722522736
img (139, 141, 3)
img-resize (150, 152, 3)
w,h 111 110 1.009090909090909
w,h 111 110 1.009090909090909
max 9454.5 363.7766922712326
img (333, 127, 3)
img-resize (393, 150, 3)
w,h 150 27 5.555555555555555
w,h 60 123 0.4878048780487805
w,h 35 102 0.3431372549019608
w,h 32 40 0.8
w,h 32 40 0.8
max 1004.0 679.0487704277039
img (243, 106, 3)
img-resize (344, 150, 3)
w,h 145 119 1.218487394957983
max 222.5 779.9818786382675
img (184, 148, 3)
img-resize (186, 150, 3)
w,h 60 56 1.0714285714285714
w,h 60 56 1.0714285714285714
w,h 67 63 1.0634920634920635
w,h 67 63 1.0634920634920635
w,h 150 121 1.2396694214876034
max 3261.0 1006.2203433513641
img (220, 95, 3)
img-resize (347, 150, 3)
w,h 128 122 1.0491803278688525
max 197.0 802.7686755657196
img (220, 128, 3)
img-resize (258, 150, 3)
w,h 57 66 0.8636363636363636
w,h 150 49 3.061224489795918
w,h 92 88 1.0454545454545454
w,h 92 88 1.0454545454545454
w,h 109 100 1.09
w,h 124 113 1.0973451327433628
max 6201.0 963.9087229967117
img (84, 215, 3)
img-resize (150, 384, 3)
w,h 306 103 2.970873786407767
w,h 306 103 2.970873786407767
max 24521.5 746.1198381185532
img (220, 90, 3)
img-resize (367, 150, 3)
w,h 92 181 0.5082872928176796
w,h 89 90 0.9888888888888889
w,h 89 90 0.9888888888888889
max 6217.5 972.4213538169861
img (743, 402, 3)
img-resize (277, 150, 3)
w,h 90 141 0.6382978723404256
w,h 45 53 0.8490566037735849
w,h 122 117 1.0427350427350428
w,h 122 117 1.0427350427350428
w,h 133 164 0.8109756097560976
max 7284.5 1162.7758158445358
img (616, 1428, 3)
img-resize (150, 348, 3)
w,h 120 54 2.2222222222222223
w,h 108 70 1.542857142857143
w,h 163 118 1.38135593220339
w,h 41 91 0.45054945054945056
w,h 100 71 1.408450704225352
max 1145.5 1728.9768263101578
img (115, 294, 3)
img-resize (150, 383, 3)
w,h 47 48 0.9791666666666666
w,h 47 48 0.9791666666666666
w,h 54 55 0.9818181818181818
w,h 54 55 0.9818181818181818
w,h 266 107 2.485981308411215
w,h 349 108 3.2314814814814814
w,h 211 104 2.0288461538461537
max 2281.5 1747.8183224201202
img (212, 85, 3)
img-resize (374, 150, 3)
max 20.0 422.9655101299286
/var/folders/81/801rlldj66b9mqn09r7s37jr0000gn/T/ipykernel_15373/4254636046.py:56: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`).
  fig = plt.figure(figsize=(15,8))
img (136, 112, 3)
img-resize (182, 150, 3)
w,h 109 32 3.40625
w,h 109 32 3.40625
w,h 116 38 3.0526315789473686
w,h 116 38 3.0526315789473686
w,h 84 81 1.037037037037037
w,h 84 81 1.037037037037037
w,h 92 90 1.0222222222222221
w,h 92 90 1.0222222222222221
w,h 86 171 0.5029239766081871
max 6362.0 514.9827550649643
img (345, 162, 3)
img-resize (319, 150, 3)
w,h 75 180 0.4166666666666667
w,h 99 102 0.9705882352941176
w,h 104 102 1.0196078431372548
max 5220.0 525.3969686031342
img (287, 144, 3)
img-resize (299, 150, 3)
w,h 54 95 0.5684210526315789
w,h 71 73 0.9726027397260274
w,h 71 73 0.9726027397260274
w,h 94 99 0.9494949494949495
w,h 71 72 0.9861111111111112
w,h 71 72 0.9861111111111112
w,h 114 70 1.6285714285714286
max 3965.5 709.8254626989365
img (572, 1338, 3)
img-resize (150, 351, 3)
w,h 72 34 2.1176470588235294
w,h 208 56 3.7142857142857144
w,h 117 84 1.3928571428571428
w,h 76 41 1.853658536585366
max 1680.5 2159.846883535385
img (107, 140, 3)
img-resize (150, 196, 3)
w,h 121 116 1.043103448275862
max 173.5 968.0752435922623
img (95, 113, 3)
img-resize (150, 178, 3)
max 11.5 235.46803629398346
img (246, 142, 3)
img-resize (260, 150, 3)
w,h 41 53 0.7735849056603774
w,h 41 53 0.7735849056603774
w,h 116 110 1.0545454545454545
w,h 85 255 0.3333333333333333
max 1056.0 1377.2194669246674
img (450, 360, 3)
img-resize (188, 150, 3)
w,h 31 42 0.7380952380952381
w,h 59 60 0.9833333333333333
w,h 134 73 1.8356164383561644
w,h 112 155 0.7225806451612903
max 1184.0 793.1543279886246
img (222, 221, 3)
img-resize (151, 150, 3)
w,h 150 72 2.0833333333333335
w,h 132 67 1.9701492537313432
w,h 136 70 1.9428571428571428
max 8374.5 2037.6559777259827
img (280, 148, 3)
img-resize (284, 150, 3)
w,h 69 177 0.3898305084745763
w,h 132 112 1.1785714285714286
max 173.0 662.6854152679443
img (284, 265, 3)
img-resize (161, 150, 3)
w,h 44 108 0.4074074074074074
max 87.5 643.7594473361969
img (256, 491, 3)
img-resize (150, 288, 3)
w,h 287 24 11.958333333333334
w,h 288 83 3.4698795180722892
max 196.0 1037.5685415267944
img (123, 118, 3)
img-resize (156, 150, 3)
w,h 106 107 0.9906542056074766
w,h 107 108 0.9907407407407407
max 5766.5 581.9331082105637
img (219, 620, 3)
img-resize (150, 425, 3)
w,h 42 42 1.0
w,h 42 42 1.0
w,h 42 42 1.0
w,h 42 42 1.0
w,h 213 134 1.5895522388059702
w,h 418 144 2.9027777777777777
max 27063.5 1981.5168067216873
img (441, 244, 3)
img-resize (271, 150, 3)
w,h 66 61 1.0819672131147542
w,h 57 74 0.7702702702702703
w,h 57 74 0.7702702702702703
w,h 120 121 0.9917355371900827
w,h 120 121 0.9917355371900827
w,h 127 128 0.9921875
w,h 139 252 0.5515873015873016
max 8930.0 2082.0134041309357
img (395, 435, 3)
img-resize (150, 165, 3)
w,h 10 137 0.072992700729927
w,h 165 150 1.1
max 1056.0 1061.144223332405
img (265, 262, 3)
img-resize (152, 150, 3)
w,h 141 37 3.810810810810811
max 195.5 620.1543279886246
img (504, 323, 3)
img-resize (234, 150, 3)
w,h 56 187 0.2994652406417112
max 85.5 546.357426404953
img (680, 788, 3)
img-resize (150, 174, 3)
w,h 125 118 1.0593220338983051
w,h 47 150 0.31333333333333335
w,h 42 60 0.7
max 589.5 1583.1534515619278
img (387, 171, 3)
img-resize (339, 150, 3)
w,h 56 200 0.28
w,h 39 118 0.3305084745762712
w,h 125 120 1.0416666666666667
w,h 125 120 1.0416666666666667
max 7731.5 1416.092488527298
img (91, 300, 3)
img-resize (150, 495, 3)
w,h 255 22 11.590909090909092
w,h 448 134 3.343283582089552
w,h 448 136 3.2941176470588234
w,h 494 141 3.50354609929078
max 43322.0 2009.0630509853363
img (151, 66, 3)
img-resize (343, 150, 3)
max 34.0 319.59292674064636
img (74, 232, 3)
img-resize (150, 470, 3)
w,h 428 7 61.142857142857146
w,h 425 96 4.427083333333333
w,h 425 96 4.427083333333333
w,h 433 101 4.287128712871287
w,h 410 150 2.7333333333333334
max 38679.5 1332.1269783973694
img (328, 216, 3)
img-resize (228, 150, 3)
w,h 87 68 1.2794117647058822
w,h 87 68 1.2794117647058822
w,h 93 72 1.2916666666666667
w,h 119 108 1.1018518518518519
w,h 119 108 1.1018518518518519
w,h 70 220 0.3181818181818182
max 6602.0 763.180801153183
img (246, 150, 3)
img-resize (246, 150, 3)
w,h 73 93 0.7849462365591398
w,h 57 51 1.1176470588235294
w,h 30 70 0.42857142857142855
w,h 30 70 0.42857142857142855
w,h 100 99 1.0101010101010102
w,h 150 244 0.6147540983606558
max 6102.0 3279.5322988033295
img (563, 612, 3)
img-resize (150, 163, 3)
w,h 32 56 0.5714285714285714
w,h 111 38 2.9210526315789473
w,h 105 131 0.8015267175572519
max 740.5 2827.100840330124
img (315, 320, 3)
img-resize (150, 152, 3)
w,h 58 86 0.6744186046511628
max 354.5 843.5239470005035
img (368, 165, 3)
img-resize (335, 150, 3)
w,h 58 98 0.5918367346938775
w,h 50 84 0.5952380952380952
w,h 70 57 1.2280701754385965
w,h 121 117 1.0341880341880343
w,h 121 118 1.0254237288135593
w,h 129 124 1.0403225806451613
w,h 141 139 1.014388489208633
max 8392.0 1300.9351961612701
img (267, 169, 3)
img-resize (237, 150, 3)
w,h 104 82 1.2682926829268293
w,h 103 89 1.1573033707865168
max 180.0 666.2964633703232
img (403, 440, 3)
img-resize (150, 164, 3)
w,h 126 125 1.008
w,h 127 125 1.016
w,h 164 83 1.9759036144578312
max 8061.5 755.3645666837692
img (360, 269, 3)
img-resize (201, 150, 3)
w,h 133 82 1.6219512195121952
max 305.0 601.1837655305862
img (66, 81, 3)
img-resize (150, 184, 3)
max 32.0 262.2792184352875
img (90, 250, 3)
img-resize (150, 417, 3)
w,h 211 109 1.9357798165137614
w,h 385 122 3.1557377049180326
w,h 389 139 2.7985611510791366
max 2988.0 2170.019332885742
img (228, 187, 3)
img-resize (183, 150, 3)
max 844.0 357.9898953437805
img (201, 223, 3)
img-resize (150, 166, 3)
w,h 133 125 1.064
w,h 155 143 1.083916083916084
max 711.0 858.5676651000977
img (365, 420, 3)
img-resize (150, 173, 3)
w,h 88 65 1.353846153846154
w,h 83 68 1.2205882352941178
w,h 77 100 0.77
max 374.5 1257.8082177639008
img (194, 101, 3)
img-resize (288, 150, 3)
w,h 89 100 0.89
w,h 86 49 1.7551020408163265
w,h 70 39 1.794871794871795
w,h 114 109 1.0458715596330275
max 194.5 811.8986183404922
img (559, 194, 3)
img-resize (432, 150, 3)
w,h 95 199 0.47738693467336685
w,h 84 76 1.105263157894737
w,h 109 101 1.0792079207920793
max 329.5 953.2741661071777
img (460, 265, 3)
img-resize (260, 150, 3)
w,h 106 89 1.1910112359550562
w,h 106 90 1.1777777777777778
w,h 116 112 1.0357142857142858
w,h 116 112 1.0357142857142858
w,h 123 196 0.6275510204081632
max 12507.0 1108.923879981041
img (109, 34, 3)
img-resize (481, 150, 3)
max 0 0
img (669, 939, 3)
img-resize (150, 211, 3)
w,h 55 94 0.5851063829787234
w,h 92 150 0.6133333333333333
max 860.5 1167.3990565538406
img (317, 302, 3)
img-resize (157, 150, 3)
w,h 116 51 2.2745098039215685
w,h 115 39 2.948717948717949
w,h 115 39 2.948717948717949
w,h 143 39 3.6666666666666665
max 4217.0 696.0020879507065
img (251, 130, 3)
img-resize (290, 150, 3)
w,h 71 78 0.9102564102564102
w,h 51 83 0.6144578313253012
w,h 51 83 0.6144578313253012
w,h 150 272 0.5514705882352942
max 1820.0 3939.6289632320404
img (315, 262, 3)
img-resize (180, 150, 3)
w,h 102 117 0.8717948717948718
w,h 77 131 0.5877862595419847
w,h 114 39 2.923076923076923
max 160.5 733.5929267406464
img (532, 578, 3)
img-resize (150, 163, 3)
w,h 98 65 1.5076923076923077
w,h 102 129 0.7906976744186046
w,h 73 36 2.0277777777777777
max 616.5 1193.068103313446
img (142, 157, 3)
img-resize (150, 166, 3)
w,h 44 55 0.8
w,h 113 94 1.202127659574468
w,h 113 95 1.1894736842105262
w,h 128 121 1.0578512396694215
w,h 128 121 1.0578512396694215
w,h 141 150 0.94
max 14731.5 910.1025931835175
img (597, 1339, 3)
img-resize (150, 336, 3)
w,h 107 59 1.8135593220338984
w,h 125 109 1.146788990825688
max 1231.5 2146.8489714860916
img (172, 303, 3)
img-resize (150, 264, 3)
w,h 234 121 1.9338842975206612
w,h 234 121 1.9338842975206612
w,h 240 127 1.889763779527559
w,h 240 127 1.889763779527559
w,h 239 12 19.916666666666668
w,h 264 150 1.76
max 29332.5 1288.2030984163284
img (241, 112, 3)
img-resize (323, 150, 3)
w,h 47 63 0.746031746031746
w,h 40 166 0.24096385542168675
w,h 41 68 0.6029411764705882
w,h 41 68 0.6029411764705882
w,h 73 71 1.028169014084507
max 1142.0 765.2792184352875
img (706, 1682, 3)
img-resize (150, 357, 3)
w,h 104 33 3.1515151515151514
w,h 32 62 0.5161290322580645
w,h 64 61 1.0491803278688525
w,h 73 43 1.697674418604651
w,h 50 70 0.7142857142857143
w,h 152 82 1.853658536585366
w,h 100 37 2.7027027027027026
max 390.5 1745.312831878662
img (415, 157, 3)
img-resize (396, 150, 3)
w,h 68 58 1.1724137931034482
w,h 60 80 0.75
w,h 23 209 0.11004784688995216
w,h 42 54 0.7777777777777778
w,h 102 84 1.2142857142857142
w,h 103 85 1.2117647058823529
w,h 116 110 1.0545454545454545
w,h 116 110 1.0545454545454545
w,h 125 116 1.0775862068965518
w,h 150 334 0.4491017964071856
max 17360.0 1571.004175901413
img (74, 266, 3)
img-resize (150, 539, 3)
w,h 319 7 45.57142857142857
w,h 202 149 1.3557046979865772
w,h 306 144 2.125
max 10.0 898.8822498321533
img (570, 932, 3)
img-resize (150, 245, 3)
w,h 78 32 2.4375
w,h 68 43 1.5813953488372092
w,h 150 17 8.823529411764707
max 201.0 902.4945094585419
img (259, 433, 3)
img-resize (150, 251, 3)
w,h 111 71 1.5633802816901408
w,h 33 48 0.6875
w,h 72 66 1.0909090909090908
w,h 123 134 0.917910447761194
w,h 25 92 0.2717391304347826
max 531.0 1520.6955199241638
img (274, 77, 3)
img-resize (534, 150, 3)
w,h 120 88 1.3636363636363635
max 12.5 563.7939372062683
img (426, 180, 3)
img-resize (355, 150, 3)
w,h 53 107 0.4953271028037383
w,h 66 74 0.8918918918918919
w,h 75 174 0.43103448275862066
w,h 86 33 2.606060606060606
w,h 86 33 2.606060606060606
w,h 67 86 0.7790697674418605
w,h 67 86 0.7790697674418605
w,h 91 127 0.7165354330708661
w,h 91 127 0.7165354330708661
max 9963.5 1182.7981131076813
img (113, 136, 3)
img-resize (150, 181, 3)
w,h 64 61 1.0491803278688525
w,h 64 61 1.0491803278688525
w,h 115 108 1.0648148148148149
w,h 115 108 1.0648148148148149
max 6397.5 418.29855132102966
img (717, 1503, 3)
img-resize (150, 314, 3)
w,h 162 22 7.363636363636363
w,h 162 70 2.3142857142857145
w,h 68 76 0.8947368421052632
max 455.0 1499.778780221939
img (384, 640, 3)
img-resize (150, 250, 3)
w,h 156 60 2.6
w,h 64 53 1.2075471698113207
w,h 138 93 1.4838709677419355
w,h 78 118 0.6610169491525424
max 2281.0 2096.401144504547
img (348, 104, 3)
img-resize (502, 150, 3)
w,h 14 179 0.0782122905027933
w,h 105 87 1.206896551724138
w,h 102 41 2.4878048780487805
w,h 78 115 0.6782608695652174
w,h 78 115 0.6782608695652174
max 4094.0 899.534051656723
img (81, 291, 3)
img-resize (150, 539, 3)
max 128.0 487.5289993286133
img (177, 222, 3)
img-resize (150, 188, 3)
w,h 156 130 1.2
w,h 156 130 1.2
w,h 160 135 1.1851851851851851
w,h 160 135 1.1851851851851851
max 19927.0 567.4264061450958
img (276, 327, 3)
img-resize (150, 178, 3)
w,h 155 127 1.220472440944882
w,h 155 127 1.220472440944882
max 18342.0 548.8700572252274
img (455, 216, 3)
img-resize (316, 150, 3)
w,h 26 138 0.18840579710144928
w,h 36 50 0.72
w,h 36 50 0.72
w,h 35 51 0.6862745098039216
w,h 35 51 0.6862745098039216
w,h 4 260 0.015384615384615385
w,h 117 117 1.0
w,h 117 117 1.0
max 10542.0 601.1248904466629
img (134, 54, 3)
img-resize (372, 150, 3)
w,h 68 67 1.0149253731343284
w,h 68 67 1.0149253731343284
max 3569.5 366.2964633703232
img (608, 244, 3)
img-resize (374, 150, 3)
w,h 23 185 0.12432432432432433
w,h 30 60 0.5
w,h 121 148 0.8175675675675675
w,h 37 75 0.49333333333333335
max 627.5 1769.273289680481
img (170, 107, 3)
img-resize (238, 150, 3)
w,h 15 112 0.13392857142857142
w,h 41 132 0.3106060606060606
w,h 28 111 0.25225225225225223
w,h 34 113 0.3008849557522124
max 1794.0 428.7766922712326
img (330, 279, 3)
img-resize (177, 150, 3)
w,h 38 104 0.36538461538461536
w,h 115 59 1.9491525423728813
w,h 115 59 1.9491525423728813
w,h 77 108 0.7129629629629629
max 6283.0 828.3208485841751
img (100, 124, 3)
img-resize (150, 186, 3)
w,h 98 83 1.180722891566265
w,h 98 83 1.180722891566265
w,h 102 100 1.02
max 3461.0 811.1219260692596
img (316, 277, 3)
img-resize (171, 150, 3)
w,h 133 49 2.7142857142857144
w,h 146 80 1.825
max 5743.0 704.457931637764
img (387, 131, 3)
img-resize (443, 150, 3)
w,h 49 58 0.8448275862068966
w,h 28 162 0.1728395061728395
w,h 26 244 0.10655737704918032
w,h 46 122 0.3770491803278688
w,h 37 48 0.7708333333333334
w,h 37 48 0.7708333333333334
w,h 112 111 1.009009009009009
w,h 112 111 1.009009009009009
w,h 30 55 0.5454545454545454
max 9661.5 882.3351291418076
img (197, 158, 3)
img-resize (187, 150, 3)
w,h 36 61 0.5901639344262295
w,h 38 160 0.2375
w,h 150 160 0.9375
max 1864.0 2371.8855493068695
img (333, 127, 3)
img-resize (393, 150, 3)
w,h 78 191 0.4083769633507853
w,h 77 66 1.1666666666666667
w,h 77 66 1.1666666666666667
w,h 81 79 1.0253164556962024
w,h 33 44 0.75
w,h 115 112 1.0267857142857142
w,h 115 112 1.0267857142857142
w,h 126 120 1.05
w,h 126 120 1.05
max 12364.0 636.6883796453476
2021-08-17T06:44:31.852700 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:32.010268 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:32.153963 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:32.337505 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:32.491560 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:32.639219 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:32.784467 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:32.986044 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:33.188397 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:33.349180 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:33.506045 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:33.702319 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:33.889069 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:34.075502 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:34.211217 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:34.399715 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:34.557457 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:34.708912 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:34.884749 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:35.035519 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:35.189153 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:35.375429 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:35.540320 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:35.681671 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:35.857773 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:36.031620 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:36.175095 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:36.340134 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:36.585149 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:36.780061 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:36.934608 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:37.129824 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:37.308470 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:37.454904 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:37.683466 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:37.836313 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:38.022734 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:38.192327 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:38.368394 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:38.567115 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:38.745978 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:38.967370 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:39.159624 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:39.296253 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:39.476184 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:39.646971 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:39.788408 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:39.943944 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:40.103652 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:40.287696 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:40.474031 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:40.629007 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:40.823300 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:41.020336 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:41.175532 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:41.398448 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:41.590472 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:41.777766 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:41.953913 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:42.148365 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:42.345512 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:42.485428 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:42.648678 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:42.778604 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:43.011948 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:43.214509 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:43.363148 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:43.534766 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:43.758230 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:43.963727 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:44.130309 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:44.303363 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:44.442528 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:44.639109 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:44.785359 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:44.930848 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:45.110704 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:45.309202 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:45.490155 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:45.627632 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:45.849040 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:46.010872 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:46.201763 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:46.370321 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:46.524167 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:46.711952 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:46.917836 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:47.068491 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:47.222172 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:47.376659 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:47.533678 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:47.713834 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:47.937577 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:48.146807 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:48.323854 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
2021-08-17T06:44:48.501807 image/svg+xml Matplotlib v3.4.3, https://matplotlib.org/
In [ ]: